package pe.com.cotelasa.scp.dao.impl;

import java.io.Serializable;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import pe.com.cotelasa.common.dao.DaoImpl;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dao.IDAOTipoContacto;
import pe.com.cotelasa.scp.entidad.TipoContacto;

/**
 *
 * @author usuario
 */

@Repository("daoTipoContacto")
public class DAOTipoContactoImpl extends DaoImpl<TipoContacto, Integer> implements IDAOTipoContacto, Serializable{
    
    @Autowired
    private SessionFactory sessionFactory;
    
    @Transactional
    public TipoContacto obtenerTipoContactoPorNombre(String nombreTipoContacto) throws DAOException {
        TipoContacto tipoContactoBuscado = null;
        try {
            tipoContactoBuscado = (TipoContacto) sessionFactory.getCurrentSession().createCriteria(TipoContacto.class)
                    .add(Restrictions.eq("nombre", nombreTipoContacto)).uniqueResult();
            
        } catch (Exception e) {
            System.err.println(e);
            throw new DAOException(e.getMessage(), e);
            
        }
        return tipoContactoBuscado;
    }
}
